<?php

class TopicsGroupsController extends AppController {
    
    public $uses = array('User', 'TopicsGroup','UserTopicGroup','Tag','Action', 'ActionPost', 
        'GroupsNotificationsUser', 'GroupsNotification');
    public $helpers = array('Js' => array('Jquery'));
    
    
    ////////////////////////////////////////////////////////////////////////////
    public function index() {
        // Accueil des groupes à thèmes, configuration des options de présentation
        // Accès aux groupes à thèmes de l'utilisateurs (possibilité de gestion des news des groupes) 
        // recherche de groupe à thème en fonction du nom mais aussi des tags donnés
             
        $id = $this->getCurrentUserId();
        
        $mesGroupes = $this->UserTopicGroup->find('all', array(
            'conditions' => array(
                'UserTopicGroup.users_id' =>  $id
        )));
        $this->set('groups',$mesGroupes );
        
        if (!empty($this->request->data)){
            $data = $this->request->data;
            $var = $data['User']['Rechercher'];
            
            //$TopicsGroupTrouvé = $this->TopicsGroup->Tag->find('all', array(
            //    'conditions' => array( 'Tag.name LIKE' => %$var% )
            //));
            
            $TopicsGroupRecherche = $this->TopicsGroup->find('all', array(
                'conditions' => array( 
                    'TopicsGroup.name LIKE' => '%'.$var.'%'
            )));
            $this->set('var',$var);

            if (empty($TopicsGroupRecherche)){
                $TopicsGroupRecherche = 'rien';
            }
            $this->set('TopicsGroupTrouvé',$TopicsGroupRecherche);
            
            
             
        }
    } 
    
    
    ////////////////////////////////////////////////////////////////////////////
    public function create() {
        // création d'un groupe à thème
        // nom explicite, choix de 3 tags obligatoires
        
        if (!empty($this->request->data)){
            
            $data = $this->request->data;

            //if($data = $this->TopicsGroup->validates() && sizeof($data)-1 >= 3){
            if( sizeof($data)-1 >= 3){    
                
                $Group = $data['TopicsGroup']; // récupération du groupe
                $this->TopicsGroup->create();
                $this->TopicsGroup->set($Group);
                $Mongroup = $this->TopicsGroup->save($this->TopicsGroup);
                
                for($i = 1; $i < sizeof($data)-1; $i++){ 
                    $nameTag = 'tag'.$i;
                    $Montag = $data[$nameTag];
                    $TagTrouver = $this->Tag->find('first', array(
                        'conditions' => array(
                            'Tag.name' =>  $Montag
                    )));

                    if (!empty($TagTrouver)){
                        $this->Tag->save(array (
                            'Tag' => $TagTrouver['Tag'],
                            'TopicsGroup' => $Mongroup['TopicsGroup']
                        ));
                    }
                    else {
                        $this->Tag->create();
                        $this->Tag->save(array (
                            'Tag' => array(
                                'name' => $Montag
                            ),
                            'TopicsGroup' => $Mongroup['TopicsGroup']
                        ));
                        
                    }
                }
                $idNewGroup = $this->TopicsGroup->id;
                $idCurrentUser = $this->getCurrentUserId();
                $this->UserTopicGroup->save(array(
                        'topics_groups_id' => $idNewGroup,
                        'users_id' => $idCurrentUser
                    ));
                
                $this->Session->setFlash('Le groupe a été crée');
            }
            $this->redirect(array('action' => '/view/'.$idNewGroup));
    }}
    
    ////////////////////////////////////////////////////////////////////////////
    public function view($id) {
        
        $mongroup = $this->TopicsGroup->find('first', array(
            'conditions' => array(
                'TopicsGroup.id' => $id
        )));
        
        $this->set('data', $mongroup);
        
        $idCurrentUser = $this->getCurrentUserId();
        
        $UserEnregistrer = $this->UserTopicGroup->find('first', array(
            'conditions' => array(
                'UserTopicGroup.users_id' =>  $idCurrentUser,
                'TopicsGroup.id' => $id
        )));
        $this->set('appartient', $UserEnregistrer);
        
        if(empty($UserEnregistrer)){
            
            $UserEnregistrer = false;
            if (!empty($this->request->data)){
                
                $join = $this->request->data; 
                
                if ($join['join']){
                    $this->UserTopicGroup->save(array(
                        'topics_groups_id' => $id,
                        'users_id' => $idCurrentUser
                    ));
                    $this->Session->setFlash('Vous avez rejoint le groupe');
                    $this->redirect(array('action' => '/view/'.$id));
                }
            }
        }
        else {
            $UserEnregistrer = true;
            if (!empty($this->request->data)){
                
                $exit = $this->request->data; 
                
                if (!$exit['left']){
                    /*
                    $this->UserTopicGroup->deleteAll(array (
                            'UserTopicGroup.topics_groups_id' => $id,
                            'UserTopicGroup.users_id' => $idCurrentUser
                    ));
                    $this->Session->setFlash('Vous avez quitter le groupe');
                    $this->redirect(array('action' => '/index'));
                    */
                }
            }
        }
        $this->set('appartient',$UserEnregistrer);
    }
    
    ////////////////////////////////////////////////////////////////////////////
    public function Chat() {
        // Chat d'un groupe à thème
        // Nombre de serveur de chat proportionnel au nombre d'utilisateurs connecté
        // 1er connecté sur un serveur de chat, donne le nom de sa ville ou de son dep
    }
}

?>
